
var PopDic = {
	/**
	 * 清除弹出字典量.
	 * @param elemIds 要设置字典量的表单元素的id，可选多个.
	 * @param digId 要设置字典量的窗口id.
	 */
	clearPopDic:function(elemIds,dlgId){
		var elemIdArr=elemIds.split("|");
		for(var i=0;i<elemIdArr.length;i++){
			var elemId=elemIdArr[i];
			var elemObj = ToolsUtil.getElemObj(elemId, 0, dlgId);
			ToolsUtil.setElemValue(elemObj, "");
//			var dialog = System.getCache(digId);
//			var iframe = dialog.find('iframe');
//			var context = iframe.prop('contentWindow').document;
//			$(context).find("#"+elemId).val("");
		}
		PopDic.closePopDic();
	},
	setPopDic:function(elemIds,digId,isReset,splitor){
		if(splitor==null || splitor==""){
			splitor=",";
		}
		var trs = $("div.datagrid-view div.datagrid-view2 table.datagrid-btable").find("tr.datagrid-row");
		var size = trs.length;
		var dicIDArr=null;
		var dicDescArr=null;
		for(var index=0;index<size;index++){
			var tr = trs[index];
			var inputs = $(tr).find("input");
			$.each(inputs,function(i,input){
				var inputType = $(input).attr("type");
				if(inputType=="radio"&&$(input).is(':checked')){
					var value = $(input).val();
					var rst=PopDic.parseElemValue(value);
					dicIDArr=rst[0];
					dicDescArr=rst[1];
				}else if(inputType=="checkbox"&&$(input).is(':checked')){
					var value = $(input).val();
					var rst=PopDic.parseElemValue(value);
					if(!dicIDArr){
						dicIDArr=rst[0];
						dicDescArr=rst[1];
					}else{
						for(var i=0;i<dicIDArr.length && i<rst[0].length;i++){
							dicIDArr[i]+=splitor+rst[0][i];
							dicDescArr[i]+=splitor+rst[1][i];
						}
					}
				}
			});
		}
		if(!dicIDArr){
			alert("请选择字典!");
			return;
		}
		var elemIdArr=elemIds.split("|");//采用"|"分隔，因为在有的服务器中，url中含有,出错。
		var elemArr=new Array();
		var elemArr2=new Array();
		for(var i=0;i<elemIdArr.length&&i<dicIDArr.length;i++){
			if(elemIdArr[i]==""){
				continue;
			}
			var elemObjs=PopDic.setElemValue(elemIdArr[i],digId,dicIDArr[i],dicDescArr[i],isReset,splitor);
			elemArr[i]=elemObjs[0];
			elemArr2[i]=elemObjs[1];
		}
		PopDic.fireOnChange(elemArr,elemArr2);
		PopDic.closePopDic();
	},
	/**
	 * 解析元素值。
	 * @param elemValue 元素值。
	 * @return String[2][],item[0]-字典值集，item[1]-字典描述集。
	 */
	parseElemValue:function(elemValue){
		var valuePairs=elemValue.split(";||;");//防止值中有;|;,所以先用;||;分隔
		if(valuePairs.length==1){
			valuePairs=elemValue.split(";|;");
		}
		var dicIDArr=new Array(valuePairs.length);
		var dicDescArr=new Array(valuePairs.length);
		for(var i=0;i<valuePairs.length;i++){
			var value=valuePairs[i];
			var index=value.indexOf("::");
			if(index>-1){
				dicIDArr[i]=value.substring(0,index);
				dicDescArr[i]=value.substring(index+2);
			}else{
				dicIDArr[i]=value;
				dicDescArr[i]=value;
			}
		}
		var rst=new Array(2);
		rst[0]=dicIDArr;
		rst[1]=dicDescArr;
		return rst;
	},
	/**
	 * 设置元素值。
	 * @param elemId 元素Id.
	 * @param dlgId 弹窗id。
	 * @param dicID 字典值.
	 * @param dicDesc 字典描述。
	 * @param isReset 是否重置元素的值。
	 * @param splitor 多选时的分隔符。
	 * @return Array[0]-值对应的元素，Array[1]-描述对应的元素。
	 */
	setElemValue:function(elemId,dlgId,dicID,dicDesc,isReset,splitor){
		var elemObj = ToolsUtil.getElemObj(elemId, 0, dlgId);
		var dispElemObj=ToolsUtil.getElemObj(elemId+"_Disp", 0, dlgId);
		if(!elemObj){
			return;
		}
		if(isReset){
			ToolsUtil.setElemValue(elemObj, dicID);
			if(dispElemObj){
				ToolsUtil.setElemValue(dispElemObj, dicDesc);
			}
		}else{
			var content = ToolsUtil.getElemValue(elemObj);
			console.info(content);
			if(content.length>0){
				var dicIDArray = dicID.split(splitor);
				var dicDescArray = dicDesc.split(splitor);
				var contentIDArray = content.split(splitor);
				dicID = "";
				dicDesc = "";
				for(var i=0;i<dicIDArray.length;i++){
					var _dicID = dicIDArray[i];
					for(var j=0;j<contentIDArray.length;j++){
						if(contentIDArray[j]==_dicID){
							break;
						}
						if(j==(contentIDArray.length-1)){
							if(dicID==""){
								dicID = _dicID;
								dicDesc = dicDescArray[i];
							}else{
								dicID =dicID+splitor+ _dicID;
								dicDesc = dicDesc+splitor+dicDescArray[i];
							}
						}
					}
				}
			}
			if(content.length>=splitor.length && content.substring(content.length-splitor.length)==splitor){
				ToolsUtil.setElemValue(elemObj, content+dicID);
				if(dispElemObj){
					ToolsUtil.setElemValue(dispElemObj, ToolsUtil.getElemValue(dispElemObj)+dicDesc);
				}
			}else{
				ToolsUtil.setElemValue(elemObj, content+(content.length>0?splitor:"")+dicID);
				if(dispElemObj){
					ToolsUtil.setElemValue(dispElemObj, ToolsUtil.getElemValue(dispElemObj)+(content.length>0?splitor:"")+dicDesc);
				}
			}
		}
		
		var objArr=new Array(2);
		objArr[0]=elemObj;
		objArr[1]=dispElemObj;
		return objArr;
	},
	closePopDic:function(){
		if(dlgId){
			var dialog = System.getCache(dlgId);
			dialog.dialog('close');
		}
	},
	/**
	 * 触发指定元素集的onchange事件。
	 * @param elemArr 指定元素集，
	 * @param elemArr2 指定元素集2。
	 */
	fireOnChange:function(elemArr,elemArr2,digId){
		for(var i=0;i<elemArr.length;i++){
			try{
				if(elemArr[i] && elemArr[i].onchange){
					EventUtil.fireEvent(elemArr[i],"onchange");
				}
				if(elemArr2[i] && elemArr2[i].onchange){
					EventUtil.fireEvent(elemArr2[i],"onchange");
				}
			}catch(e){
				
			}
		}
	}
}